home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 1996 #6
/
Amiga Plus CD - 1996 - No. 06.iso
/
pd
/
grafik
/
grimmv15
/
grimm.doc
< prev
next >
Wrap
Text File
|
1996-07-25
|
25KB
|
1,146 lines
Grimm V1.5e
First version uploaded to Aminet
See log file for changes
See end of file for latest info
Legal issue
===========
This software is © Copyright 1992-96 by the author.
All Rights Reserved except as specified below.
Adresses:
e-mail 101732.3355@compuserve.com
snail-mail
Denis SPACH
50, rue de Ribeauvillé
67100 STRASBOURG
FRANCE
This software is not Public Domain, but FREEWARE. It may be used for any
purpose, private or commercial, assuming that:
The author make NO WARRANTY or representation, either express or implied,
with respect to this software, its quality, accuracy, merchantability, or
fitness for a particular purpose. This software is provided "AS IS", and
you, its user, assume the entire risk as to its quality and accuracy.
Permission for use of this software is granted only if the user accepts
full responsibility for any undesirable consequences; the author accept
NO LIABILITY for damages of any kind.
Copying and redistributing this software is allowed according to the
following conditions:
- all files must be included with the redistribution
- redistribution cost may not exceed floppy disk cost + postage
- downloading cost from a BBS may not exceed a floppy disk cost
- charging for documentation translation is forbiden
- inclusion on a cover magazine disk is forbiden
MORE CLEARLY
------------
Nobody else than ME is allowed to make money of it,
either directly or indirectly.
For any other conditions, you MUST contact the author.
Of course, Fred FISH and/or Aminet makers are specially welcome to
redistribute this software, via net or CD's.
I am required to state that
"This software is based in part on the work of the
Independent JPEG Group."
"The Graphics Interchange Format(c) is the Copyright property of
CompuServe Incorporated. GIF(sm) is a Service Mark property of
CompuServe Incorporated."
Well, I hope this was enough for these legalicies !
What is Grimm
=============
Grimm is an Image Processor. It has been build up from many utilities I
wrote since the end of 1992, when first AGA machines appear. Some of the
features shown in GUI are not all fonctionnal, since merging all this
software into one package is quite time consuming. Grimm includes also
some neat animation features.
==> Grimm is Freeware and will remain Freeware !!
IMHO there are too much tools on this subject which are Shareware and
there is a real need for a free tool like this one. I won't claim
Grimm is better then A, B or C, try it and make your own judgement !
Grimm may be started either from WB or CLI. Stack usage may be
something less then 16k.
WARNING:
- Needs currently WB3.0 and up.
- New since 1.3, should now work on non AGA chipset (untested)
Also included with Grimm, is `dsv' a viewer supporting the same image
formats than Grimm does. It has the possibility to display True Color
images without the need of any other graphic card. Try it !
The documentation is very short, but this is FREEWARE !
For informations on history, bugs, future features, see other text files.
Enjoy !
List of files
=============
- Grimm The program
- Grimm.info and icon
- Grimm.doc this file
- Grimm.log history file
- dsv image viewer
- dsv.info and icon
- dsv.doc image viewer tiny documentation
- A-iff player for IFF anim files
- A-iff.info and icon
- A-flic player for FLI/FLC anim files
- A-flic.info and icon
Help wanted !
=============
- Ideas to improve this tool (some are already at end of file)
- Would anyone design a better icon for Grimm (I'm not an artist !)
- Would anyone write a real much better doc (amiguide ?)
- Specifications on other image/animation format you like
- Bug reports (really ??)
- Flames >NIL:
Quick documentation
===================
1 - Main window buttons
-----------------------
Load
load an image, the following formats may be read
- BMP WIN-OS/2-RLE with 4/8 and 24 bits per pixel
- CIF raw CIF image in YUV 4:1:1
- CCIR raw CCIR601 image in YUV 4:2:2
- DSF (no usage since it is my own format)
- FBM from the Fuzzy BitMap package
- GIF either 87 or 89 non interlaced first image
- IFF 1-8,24 bits and HAM standart IFF
PBM, SHAM or sliced, RGB8 and RGBN, and DEEP RGBM images
- JPG JFIF color files
- PCD PhotoCD Base/16, Base/4 & Base images
- PCX 1/4/8/24 bits files
- P?M binary or ascii from the PBMPLUS library
- QRT from DKB or POV ray tracer
- SUN 8/24/32 bits raster files
- TGA 8/15/16/24/32 non interlaced top rastered Targa files
- TIF 8/24 uncompressed colormapped or true color 8 bits/gun
(CMYK, LZW files not yet implemented)
Brush
Load a brush (not implemented)
A
Animation setup (see Animation window)
P
Preferences setup (not implemented)
For now, the following environ variables may be used :
* `JPEGQuality' may be set to a number between 25
to 95. If not set this will default to 75. Used
when saving in JPG format.
* `PhotoCDSize' may be set to a number 0 thru 2.
Used while reading PhotoCD images. 0 means read
Base resolution, 1 Base/16 resolution, and 2
Base/4 resolution. If not set this will default
to 0 (Base resolution).
* `GrimmUndo' may be set to anything.
This will enable the one level undo function.
NEW in V1.3
* `Grimm4Planes' may be set to 0 or 1.
If set to 1, this will force OCS/ECS compatibility
on AGA machines (test purpose). Note that AGA chipset
is detected otherwise.
* `GrimmNoDMA' may be set to 0 or 1.
If set to 1, drawing is done using a special
method called Dynamic Depth (Copyright by me ?!)
to really speed up window drawings.
?
Help (not implemented)
U
one level undo function
IFF (cycle button)
BMP
JPG
TGA
TIF
select Save format
Save
save an image in the format specified above
Balance
change colors intensities (see Balance window)
Color
change image type RGB/CMAP/GREY (see Color window)
Convert
convert image flip/crop/border/aspect/... (see Convert window)
Effect
select an effect (see Effect window)
Filter
select a filter (see Filter window)
Convolve
convolution lab (see Convolve window)
Palette
palette editor (see Palette window)
Resample
resize image (see Resample window)
Distort
distort image (see Distort window)
---
nop
Batch
EXTRA BONUS on V1.1:
Quick&Dirty batch converter
When this gadget is on, you may select Load gadget to convert
a set of image files.
Usage:
a) activating Batch with Left Mouse Button
on next Load operation, user is asked to select a set
of files for input, then to select an output drawer.
Output format will be the one selected for Save, and
each output file will have have the same name as the
input one with the format suffix added. So if the Save
format is IFF and the input files are img.001, img.002
... output names will be img.001.iff, img.002.iff, ...
Multi selection on the input file requester is achieved
by holding the SHIFT key while hitting the file name
the Left Mouse Button (aka AmigaDOS RequestFile command).
b) activating Batch with CTRL + Left Mouse Button
same as above, except input files are first run through
the Color operator to reduce colors. To convert 24 bits
RGB files to HAM8, for instance, hit Color operator and
select HAM8 and Quantize, then select Cancel, then back
to the main window, select Load operator, and select
files and output directory. Of course, in this case,
output format must be IFF. For others output formats,
just select the amount of colors you wanna have (8~256).
c) activating Batch with ALT + Left Mouse Button
same as a) but the output file format is an animation
file. Use this to convert a bunch of pictures into an
animation.
d) activating Batch with ALT + CTRL + Left Mouse Button
same as b) + c)
Display
Redisplay the image.
If the display type is "Screen", the image is displayed in a
private screen (use right mouse button to exit screen display).
When activated holding CTRL key, you may change the screen mode
used by Grimm (note that Grimm needs at least 640x200).
When activated holding any SHIFT key, you may change the screen
mode used when displaying images on a private screen.
slider
Zoom slider. You must select the zoom center on the display window
Window (cycle button)
Screen
change display type : window or screen
HAM (cycle button)
GREY
Ord6
Ord2
Multi
change display mode : FastHAM8 or Grey or OrderedDither(6,2)
or Multicolor
Quit
Exit
NOTE:
If display window is active, dragging the main window down the screen
will rescale the display window on next display update. The display
height area is computed from the bottom of the main window til the
bottom part of the screen.
2 - Animation window buttons
----------------------------
This window lets you setup animation parameters, such as drawer,
output file base name, the amount of frames.
Additional parameters are :
Loop
add loop at end of animation (only IFF implemented)
Append
append frame to animation (not implemented)
Back
reverse the frame numbering for sequence files, this
allows you to reverse the effect of the anim operator
(frames are numbered N down to 1 instead of 1 up to N)
Show
show each frame in display window when rendered. Render
time is slower if this is set.
Play
play rendered animation
Render
None
Color Map
Fast HAM8
HAM8
if `Fast HAM8' is selected, RGB output is converted to FastHAM8.
if `Color Map' is selected, RGB output is converted to CMAP.
if `HAM8' is selected, RGB output is converted to HAM8 (63 colors).
else images are saved in their own type
Format
Sequence
ANIM5
ANIM7W
ANIM7L
ANIM8W
ANIM8L
AVI
FLI/FLC
MPEG
select animation format.
Sequence save each frame as separate image according
to the file base name (this will give names
"name.0001", ... "name.0025" for instance
with frames set to 25).
ANIM5 saves as opcode 5 IFF ANIM
FLI/FLC saves as FLC (each chunk frame is saved as
FLI_COPY chunk, i.e. uncompressed)
Other formats not implemented
NOTE: if image type is RGB and Render=None,
output format is forced to sequence
Animation may be done on
- Distort
- Effect
- Filter
- Convolve
- Resample
while depressing the ALT key and hiting the OK button on these windows.
3 - Balance window buttons
--------------------------
The Balance operation use transfer curves, one for each channel.
Each channel has 5 handling points (those in black color with
standart WB colors). To modify the curve when SPLine or Segment
mode is selected, click and hold left mouse button near a point,
move mouse then release.
Channel1
Channel2
Channel3
enable/disable balance per channel R/G/B or Y/U/V or ColorMap.
Grey images uses Channel1.
Reset
reset curves to default, SPLine mode
Invert
reverse points of the curve
SPLine (cycle button)
Segment
Gamma
change mode of curve
integer value
gamma value (100 = 1.00) in Gamma mode
Copy
copy the last selected curve to the others enabled.
The mode (SPLine/Segment/Gamma) is also copied. This
lets you, for instance, perform SPLine on the Red,
Segment on the Green, and Gamma on the Blue in one op.
All
enable all channels
Brightness
Contrast
Saturation
not implemented
RGB (cycle button)
YUV
select color space, if YUV is selected balance is applied on
YUV components
Balance (MX gadget) select this to edit curves
Equalize compute/display curves to equalize histogram
Normalize compute/display curves to normalize histogram
Histogram display histogram
You may choose first Equalize/Normalize or Histogram then Balance
and OK, the current transfer curves will be applied
Load
Save
not implemented
Cancel
abort balancing
OK
perform balancing applying the transfer curves
4 - Color window buttons
------------------------
NOTE: this window has changed since V1.3
256 (MX buttons)
128
64
32
16
8
Custom
select size of color map for color reduction, if Custom
is selected, you may enter a count in the gadget below
integer
set this by hand if none of the above helps you
RGB (cycle button)
YUV
select histogram color space
Volume (MX buttons)
Count
Mixed
select box division method for color reduction
Mixed set half Volume / half Count
Quantize (MX buttons) color reduction
Unmap convert color mapped image to 24 bits RGB
Grey convert 24 bits RGB image to Grey
HAM convert 24 bits RGB image to HAM
select conversion to apply
None (MX buttons)
Ordered(2)
Ordered(6)
Floyd-Steinberg
Burkes
Jarvis
Sierra
Stucky
Stevenson-Arce
dithering method for color reduction. Currently only None
and Ordered(?) are implemented. No dithering is used for
HAM conversion.
Black border
set this if the first color must be black for color reduction
System colors
Lock Palette
unimplemented
Cancel
abort operation
OK
perform operation
NEW on V1.4:
If palette is locked (see Palette window), color reduction will
use the locked palette instead of computing a new one.
5 - Convert window buttons
--------------------------
Flip X axis (MX buttons) flip image
Flip Y axis flip image
Add Border add border on Left/Top/Right/Bottom
Crop crop from Left/Top size Width/Height
Visual Crop crop from TopLeft/RightBottom mouse clicks
#ifdef PRE_1.5
Exclude HSV exclude pixels in H/S/V colorspace
with tolerance set on Left/Top/Right
others set to RGB 0:0:0
Include HSV include pixels in H/S/V colorspace
with tolerance set on Left/Top/Right
others set to RGB 0:0:0
#else
Exclude HSV
Include HSV Must be renamed flood fill. This will
set to black all pixels visited by
a flood fill algorithm based on color
tolerance, starting from a reference
pixel.
#endif
Pixel aspect set pixel aspect for window display
Left
Top
Right
Bottom
Width
Height
parameters for the above operations
Cancel
abort operation
OK
perform operation
NOTE:
#ifdef PRE_1.5
Exclude/Include need a RGB image and window display mode.
When selected and OK button is hit, you have to select in
the window display, the pixel for HSV color reference.
Operation is done in HSV color space. The tolerance
on Hue is given by Left, on Saturation by Top, and on
Value by Right slider.
#else
Exclude/Include need a RGB image and window display mode.
When selected and OK button is hit, you have to select in
the window display, the pixel for RGB color reference.
Operation is done in RGB color space. The tolerance
on Red is given by Left, on Green by Top, and on Blue
by Right sliders.
#endif
Visual crop : use left mouse button to select top left corner,
then move mouse to select bottom right corner. To modify top
left corner depress SHIFT key while moving mouse. End the
selection releasing left mouse button.
6 - Effect window buttons
-------------------------
Oil (MX buttons) oil painting effect
Mosaic mosaic effect, Width slider 1 ~ 32 pels
Posterize reduce bits per gun, Width slider 1 (all) to 8 (none)
Cube not implemented
Sphere map image to a sphere
Width
parameter for Mosaic/Posterize operations
Left
parameter for Sphere operation.
The whole image height is use for Y mapping, while only
half the width is used for X mapping. This allows you to
select the Y axis rotation factor from 0 to 360°, however
the value is expressed in image width units.
Top
Right
Bottom
Height
unused parameters for the above operations
Cancel
abort operation
OK
perform operation
Hold ALT key while hiting OK to build a 360° Sphere animation
7 - Filter window buttons
-------------------------
Minimum (MX buttons) Minimum filter
Median Median filter
Maximum Maximum filter
Noise not implemented
Despeckle not implemented
Left
Top
Right
Bottom
Width
Height
unused parameters for the above operations
Cancel
abort operation
OK
perform operation
Hold ALT key while hiting OK to build an animation
8 - Convolve window buttons
---------------------------
Ch1
Ch2
Ch3
enable/disable convolution per channel R/G/B
Grey images uses Ch1
QuickEdge (MX buttons)
Kirsch
Prewitt
Sobel
Laplacian
Sharpen
Smooth
Emboss
Custom
select predefined matrix
3x3 (MX buttons)
5x5
7x7
select matrix size
Clipped (cycle button) clip results into range 0~255
Absolute if result < 0 use -result
Highest use highest result
Treshold result higher than
Circular multi-pass matrix
select computation method
RGB (cycle button)
YUV
select color space to apply the matrix
Try for instance Emboss in YUV with Ch2/Ch3 disabled !
integer gadgets
try changing values ! (e.g. treshold method/bias value)
Load
Save
not implemented
Cancel
abort convolution
OK
perform convolution
Hold ALT key while hiting OK to build an animation
NOTE:
setting the divisor to 0 will recompute the divisor which
will be set to the sum of the matrix
9 - Palette window buttons
--------------------------
R/G/B sliders
change R/G/B values of current color reg index
index slider
use this to scroll into a full 256 colors palette
Start
set Start to current color reg index
End
set End to current color reg index
Pick
select pixel color in display window
Copy
copy "Start" to "End" color
Swap
swap "Start" and "End" color
Spread
make gradient from "Start" to "End" color
Undo
restore initial palette
Load
NEW on V1.4:
Load a palette from an image file, any format supporting a
palette will fit (don't expect to find a palette in JPEG files !)
Free (cycle button)
Lock
NEW on V1.4:
`Lock' will lock the current palette when reducing colors,
(see Color window).
Make
NEW on V1.4:
Build an equally distributed palette per gun. The first entries
are filled with colors ranging (0,0,0) thru (255,255,255), and
terminated with grey levels, if entries still available. For
instance making a 256 colors palette would yield with 6*6*6=216
entries followed by 40 grey levels. The amount of entries is
selected by the gadget described below.
256 (cycle button)
240
216
125
64
27
16
NEW on V1.4:
Select the amount of entries to build a palette.
Grab
RGB
Save
not implemented
Abort
leave restoring initial palette
OK
accept palette and apply on CMAP image
10 - Resample window
--------------------
Nearest (MX buttons)
Bilinear
Cubic
Distance
select method to resample
Cubic/Distance not implemented
Bilinear method may only size up
Integer (MX buttons)
Float
not implemented
Width
Height
select new Width & Height
X2
double image
/2
halve image
1/1
keep image aspect according to last Width or Height selection
Cancel
abort operation
OK
perform operation
Hold ALT key while hiting OK to build an animation
11 - Distort window buttons
---------------------------
Shear (MX buttons) shear image from -45° to +45°
Rotate rotate from -90° to +90°
Bend bend using SPLines
Deform not implemented
Custom custom deformation using SPLines
Angle
set angle value for Bend or Rotate (trigonometric angle)
Left
Top
Right
Bottom
unused parameters
X method
Y method
Bend operation
set X or Y to other than none (not both!), then edit SPLine
as in Balance. Use Left mouse button for X mapping, and
Right mouse button for Y mapping.
Custom
same as Bend, but ix(ox) method map from output to input
while ox(ix) map from input to output. Try it, you'll see
how it works ! (NOTE: both X & Y may be set).
NEW IN V1.3: animation supported by interpolating between
the initial spline (Reset) and the one set by hand.
Quality
only Fast implemented
Load
Save
not implemented
Cancel
abort operation
OK
perform operation
Hold ALT key while hiting OK to build an animation
END of doc
----------
***********************
L A T E S T I N F O S
***********************
WW&WDNW
=======
(What Works & What Do Not Works => latest info)
This is a quick explanation of things that seems to [not] work
There is no warning or error message when something goes wrong.
(New: some messages do appear since V1.4)
The recovery mechanisms implemented are quite simple:
- Any fatal error usually will simply exit.
- Any severe error will unload the current image, freeing
most of the memory used by Grimm.
- Most of others errors will simply abort the current operation.
- Unsupported operations will act as a NOP.
Some others things to know:
- Any operator expecting an RGB image won't work if you
loaded a ColorMap image (one example is Convolve Op).
There is no warning messages (for now!) in those cases.
- since V1.5 when using window display mode, there is no more
limits on the amount of colors in a color mapped image in
order to be able to display it. A rescaled grey map or ordered
dithering map is used to show the picture.
- Note also that custom screen display is currently unsupported
on OCS/ECS.
About Anim players:
The IFF player handles opcodes 5/8W/8L files (soon 7W/7L)
The FLIC player handles FLI and FLC files
Both need AGA 8 planes display
These are just simple anim players and are not designed for
maximum speed playback (especially FLI/FLC player).
TODO's
======
The following may someday be corrected, improved or added .?.
* Fatal bugs
- none known yet !
* Annoying bugs
- seems convolving/filtering odd width images shift it left
* System
- AREXX interface
- handle Load/Save within all Sub-Functions
- preserve ALL Op parameters (Balance/Color/Palette/Convert/...)
- ?? OS 2.1 support, is this really needed (tell me) ??
* Speed
- use LUT tables instead of mul to improve speed
-- YUV <-> RGB
-- convolve
-- resample ??
- use 2 1D method to resample faster (other then nearest)
* Screen display
- Grey mode is not implemented (displayed as HAM)
- Add True Color display (4096 and 16M) (Yes, it's possible
on a stand-alone AMIGA ! try `dsv -r' and select 16M)
- add support to OCS/ECS and alien graphic cards
* Window display
- Reduce memory usage: convert and rescale on the fly while
drawing in window.
* Animation
- For each op involved in animation, record a structure
storing first and last frame parameters values. This
may help to interpolate on some effects. Note that some
are already implemented (see doc file).
- reduce memory usage when Loop is active
* Balance
- brightness/contrast/saturation
- add min/med/max threshold selection for histogram
* Color/Palette
- pre-AGA color map correction (0xA? -> 0xAA)
- offset
- sort by color/luma/occurence
- remap after offset change, or sort
- dithering
* Convert
- Mirror
- interlace/deinterlace
* Convolve
- handle borders
- more predefined filters (internal, or external via loader)
* Distort
- 2D shear (deform)
- 2D perspective
- quality handling smooth/high (only fast implemented)
* Filter
- handle borders
- noise reduction
- despeckle
* Curves
- ?? Bezier curves choice where SPLine/.. choice is used ??
- add free drawing into X/Y mapping
- add special maps into X/Y mapping
* Image operation
- HVS or HSB where YUV/RGB choice is used
- multi level undo function
- alpha channel
- region selection/operation (think Magic Wand)
- multi images support
- composition (brush/image)
- more animation
* Paint
- background color
- gradient/tint functions
- text composition border/shadow/outline/3D
- brush
* Output
- ?? HAM6 converter and saver ??
- PNG saver
- add more anim formats
* Input
- window display: offset color map entries
- add LZW & CMYK to TIFF reader
- add interlaced support to GIF reader
- add 4Base, 16Base to PCD-KODAK reader
- add Photo selection from overview to PCD-KODAK reader
- IRIS-SGI reader
- PICT-MAC reader (?! heavy stuf)
- PNG reader